on:
  push:
    branches:
      - master

name: Deploy

env:
  RUSTDOCFLAGS: "--cfg docsrs"

jobs:
  docs:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v3
        with:
          submodules: 'recursive'

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly
          override: true

      - name: Run cargo doc
        uses: actions-rs/cargo@v1
        with:
          command: doc
          args: --no-deps --all-features

      - name: Deploy to GitHub Pages
        uses: crazy-max/ghaction-github-pages@v3
        with:
          target_branch: gh-pages
          build_dir: target/doc
          fqdn: docs.quic.tech
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v3
        with:
          submodules: 'recursive'

      - name: Build Docker images
        run: make docker-build

      - name: Login to DockerHub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_TOKEN }}

      - name: Publish Docker images
        run: make docker-publish
